perm filename STAFF.F4[P11,LCS] blob sn#583807 filedate 1981-05-02 generic text, type T, neo UTF8
        SUBROUTINE STAFF 
      COMMON R2,JA,CENTR,J2,R3,R4,R5,R6,R7,R8,RJQ(10),X,RX,RJ,RZ 
     1,JQ(16),J,JX2,K,L  
        COMMON/STF/RSTFAC(0/7)/POSI/STFF(0/7),JJ2,POS/PLTR/PLT  
        EQUIVALENCE (J4,JQ(2)),(J7,JQ(5))    
C  FOR STAFF LINES: 8, POS 1, HGT(0 TO 7), UP-DOWN(NT #S),  
C  P5=SIZE, P6=2ND POS., P7=(1=INVIS.), P8=SPACER, P9=INST. NAME 
C  P6=SIZE FACTOR, IF P7↑[0 STAFF IS INVIS.  P4=1000=ONE LINE, 2000=2 LINES.    
C  PLT =-2 MAKES HEAVY STAFF.(FOR XGP) **** not now used 4/81 ***
      IF(R5.NE.0)GO TO 10
      R5=RSTFAC(J2)
C GET OLD STAFF SIZE IF R5 IS 0    
      GO TO 11 
10    RSTFAC(J2)=R5
C  SETS NEW STAFF SIZE   
11    X=R4
      L=5 
      IF(IABS(J4).LT.1000)GO TO 12 
      X=AMOD(R4,1000.)   
      L=IABS(J4/1000)    
C 1000'S FOR N LINE STF.  P4=0=STANDARD 5-LINE STAFF.  6000=6 LINES, ETC.  
12    J=J2*123-469  
      RX=J+X*7.*R5  
C   NOW STAFF NUMS RUN FROM 0 TO 7 
      STFF(J2)=RX  
C SAVE ABSOLUTE POSITION OF STAFF. 
      RX=RX+3.*R5   
      IF(R6.EQ.0)GO TO 7 
      RJ=RHORZ(R6)  
      GO TO 8  
7     RJ=596.  
8      R5=R5*14.    
C R5 NOW HAS SPACE BETWEEN LINES IN PIXELS.  
       IF(R8.EQ.0)GO TO 68    
       IF(PLT.LT.0)GO TO 68   
       RZ=RX+R8*167.
C  167 IS A MAGIC NUMBER!!  PUTS LINE ON DPY. R8 IS IN INCHES    
       CALL LINX(R3,RZ,RJ,RZ) 
C   SHOWS WHERE NEXT STAFF 0 WILL BE.   
68     IF(J7.EQ.0)GO TO 101   
C  FOR INVISIBLE STAFF   
       IF(PLT.EQ.0)CALL LINES(-596.,RX,3)    
C   TO ACTIVATE DPY BUFFER    
       RETURN  
101   DO 6 K=1,L    
      CALL LINX(R3,RX,RJ,RX)  
6     RX=RX+R5 
C  R5 HAS SPACE (IN PIXELS) BETWEEN EACH LINE.    
C SEE .FAI PROG. FOR METHOD WHEN OUTPUTTING TO A PEN PLOTTER.   
      END